/* -*- C++ -*- vim: set syntax=cpp:
 * (C) 2005-2010 Frank-Rene Schaefer
 * ABSOLUTELY NO WARRANTY              */
#ifndef __QUEX_INCLUDE_GUARD__ANALYZER__MEMBER__BUFFER_ACCESS
#define __QUEX_INCLUDE_GUARD__ANALYZER__MEMBER__BUFFER_ACCESS

#include <quex/code_base/definitions>

QUEX_NAMESPACE_MAIN_OPEN

/* Direct Access to Memory */
QUEX_INLINE  void*                 QUEX_NAME(buffer_fill_region_append)(QUEX_TYPE_ANALYZER*  me,
                                                                        void* ContentBegin, 
                                                                        void* ContentEnd);
QUEX_INLINE  void                  QUEX_NAME(buffer_fill_region_prepare)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  QUEX_TYPE_CHARACTER*  QUEX_NAME(buffer_fill_region_begin)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  QUEX_TYPE_CHARACTER*  QUEX_NAME(buffer_fill_region_end)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  size_t                QUEX_NAME(buffer_fill_region_size)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  void                  QUEX_NAME(buffer_fill_region_finish)(QUEX_TYPE_ANALYZER* me,
                                                                        const size_t LoadedN);

QUEX_INLINE  QUEX_TYPE_CHARACTER*  QUEX_NAME(buffer_lexeme_start_pointer_get)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  void                  QUEX_NAME(buffer_input_pointer_set)(QUEX_TYPE_ANALYZER* me,
                                                                       QUEX_TYPE_CHARACTER*);

#if defined(__QUEX_OPTION_CONVERTER)
QUEX_INLINE  void*     QUEX_NAME(buffer_fill_region_append_conversion)(QUEX_TYPE_ANALYZER* me,
                                                                       void*               ContentBegin, 
                                                                       void*               ContentEnd);
QUEX_INLINE  void*     QUEX_NAME(buffer_fill_region_append_conversion_direct)(QUEX_TYPE_ANALYZER* me,
                                                                              void*               ContentBegin, 
                                                                              void*               ContentEnd);
QUEX_INLINE  void      QUEX_NAME(buffer_conversion_fill_region_prepare)(QUEX_TYPE_ANALYZER* me); 
QUEX_INLINE  uint8_t*  QUEX_NAME(buffer_conversion_fill_region_begin)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  uint8_t*  QUEX_NAME(buffer_conversion_fill_region_end)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  size_t    QUEX_NAME(buffer_conversion_fill_region_size)(QUEX_TYPE_ANALYZER* me);
QUEX_INLINE  void      QUEX_NAME(buffer_conversion_fill_region_finish)(QUEX_TYPE_ANALYZER* me,
                                                                       const size_t        ByteN);
#endif

QUEX_NAMESPACE_MAIN_CLOSE

#endif /* __QUEX_INCLUDE_GUARD__ANALYZER__MEMBER__BUFFER_ACCESS */

